Data Analysis Presented by:
¶

Average GPA for the entire subject of MATH in Fall 2022: 2.3, which is a C+, with the hardest subject being MATH 151 with a 1.9¶


Average Withdrawal Rate for any individual class for the entire subject of MATH in Fall 2022 is 24.98% ¶


Standard Deviation in the context of the subject tells us about the SPREAD OF GRADES THAT STUDENTS RECEIVED IN EACH CLASS as a whole, which was 1.23. This can be can considered quite high and indicate that there are a significant number of both very high and very low grades, or it might mean that grades are distributed quite evenly across the range from low to high. It should also be noted that in this subject there is usually different grading systems in the form of a curve or a grade distrubution around the average score of a class.¶


Nonetheless, if the distribution of scores is approximately normal (i.e., follows a bell curve), the empirical rule states:¶

  • About 68% of the data falls within one standard deviation of the mean. Thus, 68% of scores would be within mean −1.23 to mean +1.23
  • About 95% falls within two standard deviations
  • About 99.7% falls within three standard deviations


Bringing it all together:¶

  • If the AVERAGE GPA of a math class is 2.3 and the AVERAGE STANDARD DEVIATION is 1.23, that means that on average, 68% of students who COMPLETE a math class will get a GPA ranging from 1.1 to 3.5 .


IMPORTANT FUNCTIONS USED IN THIS NOTEBOOK:¶

  • gpa_letter_converter(), which takes in a gpa and converts it into a letter grade
  • calculate_average_gpas(), which automates the process of going through every class number and every professor for every class number
  • calculate_teacher_gpas(), which automates the process of going through every teacher in a subject irrespective of class number, getting their gpa, and comparing it to the average gpa for the entire subject

Note: These will be used for doing the rest of the analysis of subjects by class!
¶

SCROLL DOWN FOR DATA VISUALIZATIONS AND A MORE DETAILED WRITTEN NON-TECHNICAL ANALYSIS¶

Also, check this website out to get some basics on formating text with Jupyter notebook!¶

  • https://www.earthdatascience.org/courses/intro-to-earth-data-science/file-formats/use-text-files/format-text-with-markdown-jupyter-notebook/
In [1]:
import pandas as pd
import numpy as np
url = "https://docs.google.com/spreadsheets/d/1mS6khEB6m8cPNenNvY9Tg6bJ6YkmcvCI/export?format=csv&gid=1283335856"
df = pd.read_csv(url)
df.head()
Out[1]:
TERM SUBJECT NBR COURSE NAME SECTION PROF TOTAL A+ A A- ... C C- D F W INC/NA AVG GPA join the best club on campus Unnamed: 22 https://discord.gg/vxCqd4hdak
0 F2022 ACCT 100 Fin & Mgr Acct 1 HO, V 28 0 11 2 ... 3 0 0 0 5 0 3.383 NaN NaN NaN
1 F2022 ACCT 101 Intro Thry & Prac of Acct I 11 CHAN, J 29 0 13 2 ... 0 1 0 0 3 0 3.464 NaN NaN NaN
2 F2022 ACCT 101 Intro Thry & Prac of Acct I 5 RUTHIZER, S 50 2 9 14 ... 1 0 3 2 3 0 3.176 NaN NaN NaN
3 F2022 ACCT 101 Intro Thry & Prac of Acct I 2 GRUZA, M 45 1 2 3 ... 0 0 0 0 25 0 3.067 NaN NaN NaN
4 F2022 ACCT 101 Intro Thry & Prac of Acct I 4 FEISULLIN, A 45 4 6 1 ... 9 1 1 0 4 1 2.908 NaN NaN NaN

5 rows × 24 columns

The isinstance() function returns True if the specified object is of the specified type, otherwise False (https://stackoverflow.com/questions/1549801/what-are-the-differences-between-type-and-isinstance)¶

In [2]:
important_columns = ["SUBJECT", "NBR", "COURSE NAME", "PROF", "TOTAL", "A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D", "F", "W", "AVG GPA"]

def gpa_letter_converter(gpa):
    letter_grades = {
        "A": 4.0, 
        "A-": (3.7, 3.8, 3.9), 
        "B+": (3.3, 3.4, 3.5, 3.6), 
        "B": (3.0, 3.1, 3.2), 
        "B-": (2.7, 2.8, 2.9), 
        "C+": (2.3, 2.4, 2.5, 2.6),
        "C": (2.0, 2.1, 2.2), 
        "C-": (1.7, 1.8, 1.9),
        "D": (1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6),
        "F": (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)
    }
    for letter_grade, number_grade in letter_grades.items():
        if isinstance(number_grade, float) and gpa == number_grade:
            return letter_grade
        elif isinstance(number_grade, tuple) and gpa in number_grade:
            return letter_grade
    
    return None

analysis_df = df[important_columns]
analysis_df.head()
Out[2]:
SUBJECT NBR COURSE NAME PROF TOTAL A+ A A- B+ B B- C+ C C- D F W AVG GPA
0 ACCT 100 Fin & Mgr Acct HO, V 28 0 11 2 1 3 3 0 3 0 0 0 5 3.383
1 ACCT 101 Intro Thry & Prac of Acct I CHAN, J 29 0 13 2 0 4 5 0 0 1 0 0 3 3.464
2 ACCT 101 Intro Thry & Prac of Acct I RUTHIZER, S 50 2 9 14 6 4 5 0 1 0 3 2 3 3.176
3 ACCT 101 Intro Thry & Prac of Acct I GRUZA, M 45 1 2 3 1 5 0 6 0 0 0 0 25 3.067
4 ACCT 101 Intro Thry & Prac of Acct I FEISULLIN, A 45 4 6 1 7 5 0 6 9 1 1 0 4 2.908

dropna():¶

  • Remove missing values (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html)
In [3]:
analysis_df = analysis_df.dropna(subset = "PROF")
analysis_df = analysis_df[analysis_df["AVG GPA"] != 0]
analysis_df.shape
Out[3]:
(2333, 18)
In [4]:
math_df = analysis_df[analysis_df['SUBJECT']== 'MATH']
pd.set_option('display.max_rows', None)
math_df
Out[4]:
SUBJECT NBR COURSE NAME PROF TOTAL A+ A A- B+ B B- C+ C C- D F W AVG GPA
1757 MATH 110 Math Literacy ALI, M 37 7 9 3 4 2 2 1 1 0 1 0 5 3.500
1758 MATH 110 Math Literacy ALI, M 37 10 7 2 1 3 3 3 1 0 1 0 5 3.410
1759 MATH 110 Math Literacy LASKER, M 31 3 8 2 3 0 4 0 1 0 0 2 7 3.222
1760 MATH 110 Math Literacy BEGA, J 37 4 0 5 3 3 3 4 2 2 0 1 6 2.893
1761 MATH 110 Math Literacy WOLF-SONKIN, V 30 0 1 1 0 6 1 0 2 2 4 5 7 1.809
1762 MATH 114 Elementary Prob&Stat LEHMAN, S 20 1 1 4 0 5 0 2 0 1 3 0 3 2.771
1763 MATH 115 College Algebra for Precalc ALI, M 29 6 5 1 4 3 2 0 1 2 1 0 3 3.268
1764 MATH 115 College Algebra for Precalc UDDIN, J 30 0 3 1 3 1 2 0 1 3 0 1 14 2.740
1765 MATH 115 College Algebra for Precalc CLARKE, A 22 1 0 1 1 2 1 0 1 0 0 1 11 2.713
1766 MATH 115 College Algebra for Precalc TOBAR, J 30 1 2 3 1 4 0 1 5 2 3 0 2 2.595
1767 MATH 115 College Algebra for Precalc NAKAYAMA, A 38 4 2 0 2 3 3 2 4 1 1 3 8 2.520
1768 MATH 115 College Algebra for Precalc NAKAYAMA, A 39 3 1 3 7 0 2 4 2 1 5 3 6 2.435
1769 MATH 115 College Algebra for Precalc CLARKE, A 21 0 0 1 1 0 5 0 1 1 0 1 6 2.420
1770 MATH 115 College Algebra for Precalc OSTROWSKY, A 37 3 4 1 2 1 0 0 2 2 6 2 12 2.378
1771 MATH 115 College Algebra for Precalc BOTEJU, W 38 0 3 2 0 2 3 2 2 4 2 5 8 2.036
1772 MATH 115 College Algebra for Precalc LEE, D 35 0 3 0 4 2 0 1 0 6 9 1 9 2.027
1773 MATH 115 College Algebra for Precalc GILLMAN, P 30 3 0 0 0 2 0 2 0 1 3 5 9 1.706
1774 MATH 115 College Algebra for Precalc CLARKE, A 22 0 0 0 1 1 0 1 1 2 0 3 7 1.556
1775 MATH 115 College Algebra for Precalc WOLF-SONKIN, V 30 0 0 0 1 0 3 1 1 2 1 4 16 1.546
1776 MATH 115 College Algebra for Precalc LEE, D 35 0 0 0 2 0 2 0 1 8 7 3 9 1.504
1777 MATH 115 College Algebra for Precalc LEHMAN, S 21 1 1 0 0 0 2 0 2 0 1 6 5 1.415
1778 MATH 115 College Algebra for Precalc GILLMAN, P 36 0 2 0 0 1 0 2 1 2 2 8 12 1.278
1779 MATH 115 College Algebra for Precalc NEVAREZ, B 30 0 0 0 2 0 2 2 1 1 3 8 9 1.226
1780 MATH 115 College Algebra for Precalc CHOW, J 29 0 0 0 2 0 0 1 3 0 5 8 4 1.047
1781 MATH 115 College Algebra for Precalc GONZALEZ, R 14 0 0 1 0 0 0 0 2 1 1 7 1 0.867
1782 MATH 119 Math for Elem School Teachers LEE, H 25 4 2 3 3 3 4 2 0 0 1 0 3 3.200
1783 MATH 119 Math for Elem School Teachers GREENMAN, J 30 3 5 2 1 4 0 2 8 1 0 0 4 2.962
1784 MATH 119 Math for Elem School Teachers CHOW, J 29 5 5 1 3 1 2 2 2 2 0 2 1 2.960
1785 MATH 119 Math for Elem School Teachers LIN, Y 30 6 4 1 5 1 2 0 3 1 3 2 2 2.832
1786 MATH 119 Math for Elem School Teachers LEHMAN, S 16 2 1 2 1 1 1 0 1 0 3 1 2 2.569
1787 MATH 119 Math for Elem School Teachers BERGER, K 36 2 4 5 3 1 2 0 1 2 9 1 5 2.507
1788 MATH 119 Math for Elem School Teachers SHEN, T 36 1 2 1 2 2 4 3 2 4 5 2 7 2.207
1789 MATH 120 Discrete Math Comp Sci GOLDMAN, S 35 0 9 6 2 3 2 9 0 1 2 0 1 3.047
1790 MATH 120 Discrete Math Comp Sci WANG, A 35 4 2 1 2 0 3 5 2 3 2 1 10 2.600
1791 MATH 120 Discrete Math Comp Sci JOANIDHI, Z 30 0 8 1 0 1 0 1 5 0 0 6 6 2.318
1792 MATH 120 Discrete Math Comp Sci BERGER, K 35 0 1 0 2 6 3 2 2 2 4 2 11 2.196
1793 MATH 120 Discrete Math Comp Sci BOTEJU, W 36 2 5 1 1 1 1 5 3 4 2 6 5 2.161
1794 MATH 120 Discrete Math Comp Sci HANUSA, C 30 2 2 2 1 1 2 3 0 1 2 6 7 2.077
1795 MATH 120 Discrete Math Comp Sci BOTEJU, W 35 1 1 2 2 4 2 0 2 1 5 6 8 1.927
1796 MATH 120 Discrete Math Comp Sci BERGER, K 36 0 1 0 1 3 2 1 5 2 4 6 10 1.656
1797 MATH 120 Discrete Math Comp Sci ADRIAN, M 37 0 2 0 1 1 3 0 4 3 7 8 8 1.466
1798 MATH 122 Precalculus CAI, A 23 1 1 5 0 0 2 1 1 0 0 0 0 3.291
1799 MATH 122 Precalculus CLEARY, J 38 6 11 3 1 2 0 1 2 1 5 0 4 3.169
1800 MATH 122 Precalculus DHARMA, J 30 1 0 1 0 0 3 0 0 0 0 0 16 3.160
1801 MATH 122 Precalculus LEE, H 35 5 1 2 4 3 4 2 0 3 0 0 11 3.088
1802 MATH 122 Precalculus ARCHETTI, M 37 10 3 1 2 6 0 1 3 2 1 2 5 3.000
1803 MATH 122 Precalculus CLEARY, J 35 3 3 4 2 2 6 2 3 0 4 0 4 2.834
1804 MATH 122 Precalculus KALRA, P 20 3 1 0 0 0 4 3 2 0 0 1 6 2.693
1805 MATH 122 Precalculus ISLAM, M 20 1 0 4 1 2 0 1 2 0 0 2 4 2.646
1806 MATH 122 Precalculus OZKAN, E 10 0 3 0 0 0 0 3 0 0 2 0 2 2.613
1807 MATH 122 Precalculus BROGES, A 21 0 4 1 0 6 1 1 1 0 1 3 1 2.539
1808 MATH 122 Precalculus SPITZ, H 35 1 4 3 2 2 2 0 0 0 5 3 11 2.459
1809 MATH 122 Precalculus LI, H 37 5 2 1 1 1 4 2 0 1 2 5 11 2.379
1810 MATH 122 Precalculus LORD, A 37 0 4 0 4 1 1 2 4 0 4 2 9 2.341
1811 MATH 122 Precalculus MARKOWITZ, E 40 0 3 4 3 4 3 1 3 2 4 4 8 2.339
1812 MATH 122 Precalculus FLYNN, D 35 1 3 3 2 4 2 1 3 5 6 3 2 2.239
1813 MATH 122 Precalculus COLON, C 37 2 1 0 0 1 0 2 1 3 4 0 19 2.193
1814 MATH 122 Precalculus YUABOV, D 37 3 2 2 0 0 3 3 1 3 2 5 12 2.146
1815 MATH 122 Precalculus MARKOWITZ, E 37 1 3 0 4 3 1 0 3 3 7 3 4 2.107
1816 MATH 122 Precalculus JOSEPH, M 35 0 1 0 0 3 3 2 2 5 1 3 12 1.960
1817 MATH 122 Precalculus SHEN, T 30 0 0 0 2 1 2 3 2 2 5 2 7 1.805
1818 MATH 122 Precalculus JOSEPH, M 37 0 1 1 1 3 2 1 2 4 3 5 13 1.804
1819 MATH 122 Precalculus GANT, S 35 0 2 2 0 1 0 0 2 1 4 4 14 1.756
1820 MATH 122 Precalculus SPITZ, H 35 1 2 1 2 5 0 3 1 1 4 10 5 1.730
1821 MATH 122 Precalculus TOLEDO, D 37 0 0 0 0 0 2 2 4 1 0 7 15 1.231
1822 MATH 122 Precalculus TOLEDO, D 37 0 0 0 0 0 1 0 1 2 6 11 10 0.671
1823 MATH 131 Calculus with Applications I GJONLEKAJ, M 16 2 2 2 0 2 0 2 1 0 0 1 4 3.000
1824 MATH 131 Calculus with Applications I GREENMAN, J 29 1 7 0 0 2 1 1 4 1 3 0 9 2.785
1825 MATH 131 Calculus with Applications I SABITOVA, M 20 0 2 0 1 4 0 1 4 2 0 1 5 2.467
1826 MATH 131 Calculus with Applications I GREENMAN, J 24 1 1 0 1 2 2 0 4 2 2 3 5 2.006
1827 MATH 131 Calculus with Applications I GREENMAN, J 31 0 4 0 2 3 1 3 2 0 3 7 6 1.928
1828 MATH 131 Calculus with Applications I JOANIDHI, Z 25 0 2 0 1 3 1 1 4 0 0 6 6 1.850
1829 MATH 132 Calc Appl Soc Sci II GOLDMAN, S 12 1 0 1 2 2 1 1 0 0 1 0 2 2.922
1830 MATH 141 Calculus/Differentiation BROGES, A 19 5 3 1 0 1 1 0 0 0 1 1 3 3.262
1831 MATH 141 Calculus/Differentiation KALRA, P 20 2 3 3 0 0 1 2 2 0 0 1 5 3.029
1832 MATH 141 Calculus/Differentiation FLYNN, D 35 2 6 3 4 2 3 3 2 2 1 1 5 2.955
1833 MATH 141 Calculus/Differentiation GOLDMAN, S 30 1 4 3 4 3 1 2 3 3 2 2 2 2.632
1834 MATH 141 Calculus/Differentiation GONZALEZ, R 35 3 1 2 6 2 1 4 2 2 0 4 6 2.537
1835 MATH 141 Calculus/Differentiation KIMATOV, M 38 7 3 2 0 2 2 2 1 3 4 5 5 2.403
1836 MATH 141 Calculus/Differentiation WANG, A 34 3 1 1 5 2 4 2 2 0 2 5 7 2.356
1837 MATH 141 Calculus/Differentiation NICASTRO, S 38 2 0 3 4 1 4 3 2 3 5 2 9 2.314
1838 MATH 141 Calculus/Differentiation ERLBAUM, S 35 1 5 2 1 0 3 0 1 3 1 6 11 2.213
1839 MATH 141 Calculus/Differentiation ERLBAUM, S 34 0 2 0 1 5 3 3 4 1 5 5 5 1.931
1840 MATH 141 Calculus/Differentiation ADRIAN, M 37 1 2 1 1 4 3 0 2 0 2 8 9 1.879
1841 MATH 141 Calculus/Differentiation BROGES, A 20 0 2 0 1 2 2 1 1 0 1 5 4 1.867
1842 MATH 141 Calculus/Differentiation RALESCU, S 35 2 0 2 0 0 2 0 4 3 0 6 15 1.784
1843 MATH 141 Calculus/Differentiation TOBAR, J 40 1 3 0 1 1 1 2 3 0 3 7 17 1.755
1844 MATH 141 Calculus/Differentiation DON, E 35 0 2 0 2 2 0 0 3 0 4 6 13 1.611
1845 MATH 142 Calculus/Integration MITRA, S 28 1 3 2 5 6 0 1 3 0 0 0 6 3.152
1846 MATH 142 Calculus/Integration WEN, C 29 10 1 2 2 2 0 2 2 0 2 6 0 2.572
1847 MATH 142 Calculus/Integration WEN, C 25 5 1 1 1 1 1 4 1 1 1 4 4 2.410
1848 MATH 142 Calculus/Integration RONG, Y 21 2 1 1 0 0 2 3 4 0 3 1 4 2.294
1849 MATH 142 Calculus/Integration RICCARDO, M 30 2 0 1 1 3 6 1 3 3 3 2 4 2.264
1850 MATH 142 Calculus/Integration ISLAM, M 11 1 0 1 0 1 1 0 0 1 0 3 3 1.888
1851 MATH 142 Calculus/Integration SULTAN, A 28 0 0 1 0 1 0 5 2 1 0 6 12 1.494
1852 MATH 142 Calculus/Integration RONG, Y 22 0 0 0 0 1 1 3 1 1 5 3 7 1.420
1853 MATH 143 Calculus-Infinite Series LIU, Z 22 3 1 2 0 1 3 1 1 2 0 1 7 2.813
1854 MATH 143 Calculus-Infinite Series ERLBAUM, S 30 0 3 1 0 4 3 4 2 3 2 3 4 2.244
1855 MATH 143 Calculus-Infinite Series ERLBAUM, S 30 2 1 1 3 1 4 1 3 3 3 4 4 2.146
1856 MATH 143 Calculus-Infinite Series BRAUN, M 27 1 0 2 1 0 1 1 0 6 2 5 8 1.679
1857 MATH 143 Calculus-Infinite Series BRAUN, M 28 2 1 0 1 0 1 1 0 1 1 9 11 1.353
1858 MATH 151 Calc/Diff & Integtn PANDAZIS, M 25 2 0 0 1 1 0 0 5 0 5 0 9 2.093
1859 MATH 151 Calc/Diff & Integtn DHARMA, J 27 1 1 1 0 0 2 1 3 1 0 3 12 2.085
1860 MATH 151 Calc/Diff & Integtn SPITZ, H 29 3 0 2 3 1 0 1 1 1 4 5 8 2.014
1861 MATH 151 Calc/Diff & Integtn DON, E 31 2 0 1 2 0 1 0 4 0 4 4 10 1.833
1862 MATH 151 Calc/Diff & Integtn KAHAN, S 30 0 0 0 1 1 0 1 1 0 4 3 18 1.327
1863 MATH 152 Calc/Integration & Infinite TERILLA, J 25 4 5 2 3 1 0 0 2 0 1 3 4 2.919
1864 MATH 152 Calc/Integration & Infinite BERMAN, G 30 1 5 1 0 0 0 1 0 1 1 3 16 2.515
1865 MATH 152 Calc/Integration & Infinite KOROVESHI, B 26 0 1 2 0 1 1 3 3 0 0 7 8 1.667
1866 MATH 152 Calc/Integration & Infinite PORCHETTA, E 20 2 0 0 0 0 2 0 2 2 0 5 7 1.600
1867 MATH 152 Calc/Integration & Infinite KAHAN, S 28 0 1 0 1 0 0 1 1 0 1 8 15 0.969
1868 MATH 201 Multivariable Calculus ZAKERI, S 30 3 3 4 3 5 1 1 2 1 0 0 7 3.235
1869 MATH 201 Multivariable Calculus SARIC, D 18 0 4 0 1 0 1 2 0 4 0 0 6 2.783
1870 MATH 202 Advanced Calculus SARIC, D 25 3 7 2 1 0 3 3 1 1 0 0 4 3.305
1871 MATH 202 Advanced Calculus ROTHENBERG, R 13 0 4 3 0 1 0 0 0 0 2 0 3 3.210
1872 MATH 209 Elementary Set Theory KLOSIN, K 14 0 2 1 0 0 1 4 0 0 3 1 2 2.217
1873 MATH 220 Discrete Mathematics GANGARAM, E 21 1 5 0 4 4 1 1 1 0 1 0 3 3.178
1874 MATH 220 Discrete Mathematics MILLER, D 16 2 2 3 1 0 0 0 0 0 1 1 6 3.140
1875 MATH 223 Diff Equa/Num Meth 1 JOSEPH, M 20 0 4 4 0 1 4 0 2 2 1 1 1 2.789
1876 MATH 223 Diff Equa/Num Meth 1 BRAUN, M 28 1 2 3 3 4 4 2 1 3 1 2 2 2.635
1877 MATH 231 Linear Algebra I SABITOVA, M 19 1 3 0 1 0 0 1 1 0 0 0 12 3.371
1878 MATH 231 Linear Algebra I JIANG, Y 30 2 4 4 2 2 0 1 2 0 1 1 11 3.089
1879 MATH 231 Linear Algebra I ZAKERI, S 30 4 5 1 1 4 3 2 4 2 1 1 2 2.861
1880 MATH 231 Linear Algebra I JOSEPH, M 30 1 3 1 2 4 3 1 1 3 0 5 6 2.325
1881 MATH 231 Linear Algebra I PANDAZIS, M 30 1 3 0 1 1 1 1 3 1 3 2 13 2.235
1882 MATH 231 Linear Algebra I KOROVESHI, B 26 1 3 2 1 3 2 0 1 2 0 6 5 2.214
1883 MATH 231 Linear Algebra I DHARMA, J 27 3 1 0 1 1 0 0 1 0 0 4 16 2.209
1884 MATH 231 Linear Algebra I BERMAN, G 21 0 2 0 2 0 2 0 1 0 0 3 11 2.200
1885 MATH 231 Linear Algebra I MILLER, D 24 0 1 2 1 3 1 1 1 2 2 3 7 2.124
1886 MATH 231 Linear Algebra I KOROVESHI, B 24 0 0 1 0 0 1 3 3 5 0 2 9 1.853
1887 MATH 231 Linear Algebra I VLAMIS, N 23 1 0 0 2 0 2 1 3 2 0 6 5 1.629
1888 MATH 241 Intro Prob & Math Stat MITRA, S 25 0 3 2 4 2 4 1 0 0 0 0 8 3.231
1889 MATH 241 Intro Prob & Math Stat MILLER, D 25 0 4 1 2 1 0 1 2 1 1 0 12 2.946
1890 MATH 241 Intro Prob & Math Stat LIU, Z 35 2 3 2 4 2 4 3 1 2 0 1 11 2.904
1891 MATH 241 Intro Prob & Math Stat SISSER, F 36 1 2 1 5 4 6 0 2 2 0 4 9 2.511
1892 MATH 241 Intro Prob & Math Stat SISSER, F 36 3 2 4 2 0 6 0 4 7 0 3 4 2.500
1893 MATH 241 Intro Prob & Math Stat GANGARAM, E 28 3 2 1 2 2 3 0 2 2 2 3 6 2.445
1894 MATH 241 Intro Prob & Math Stat MILLER, D 25 1 2 2 1 0 1 1 1 0 2 3 11 2.264
1895 MATH 241 Intro Prob & Math Stat NEVAREZ, B 36 2 3 3 0 1 1 4 4 4 4 4 6 2.160
1896 MATH 241 Intro Prob & Math Stat GANGARAM, E 36 0 1 0 0 3 1 2 3 2 1 10 13 1.335
1897 MATH 242 Methods Of Math Statistics SISSER, F 36 7 2 1 0 0 4 0 3 4 0 8 7 2.183
1898 MATH 247 Lin Prog & Game Thy KLOSIN, K 36 4 16 0 1 1 4 2 2 0 0 2 4 3.303
1899 MATH 301 Abstract Algebra I MILLER, R 15 0 0 0 0 0 0 0 0 1 0 1 13 0.850
1900 MATH 310 Elementary Real Analysis WILSON, S 24 0 5 3 0 4 2 2 2 1 0 0 5 3.095
1901 MATH 505 Mathematical Problem-Solving GANGARAM, E 30 1 2 3 2 4 5 1 5 3 0 4 0 2.420
1902 MATH 509 Set Theory and Logic KLOSIN, K 19 0 3 0 0 2 3 2 1 0 0 5 3 2.044
1903 MATH 518 College Geometry MARKINSON, M 21 2 5 1 5 1 1 1 1 0 0 3 1 2.910
1904 MATH 614 Functions of Real Variables MITRA, S 11 2 3 2 2 1 1 0 0 0 0 0 0 3.609
1905 MATH 621 Probability RALESCU, S 24 0 3 2 1 3 1 0 1 1 0 2 10 2.721
1906 MATH 624 Numerical Analysis I. OVCHINNIKOV, A 15 3 3 2 0 1 0 1 1 0 0 1 3 3.225
1907 MATH 634 Theory of Graphs HANUSA, C 12 5 4 0 0 0 0 0 0 1 0 1 1 3.427
1908 MATH 2902 Studies in Mathematics ZOMBORY, B 10 1 3 2 0 1 0 0 0 0 0 0 2 3.771
1909 MATH 114W Elementary Prob&Stat CAI, A 29 11 6 2 0 7 0 0 0 0 0 0 3 3.708
1910 MATH 114W Elementary Prob&Stat RICCARDO, M 30 8 6 3 1 1 1 2 0 1 3 0 4 3.285

pd.set_option :¶

  • Sets the value of the specified option (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html)

pd.reset_option¶

  • Reset one or more options to their default value (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.reset_option.html)
In [5]:
CourseNumberPattern = r'^[1-3][0-9]{2}W?$'
math_df = math_df[math_df['NBR'].str.contains(CourseNumberPattern)]
math_df
Out[5]:
SUBJECT NBR COURSE NAME PROF TOTAL A+ A A- B+ B B- C+ C C- D F W AVG GPA
1757 MATH 110 Math Literacy ALI, M 37 7 9 3 4 2 2 1 1 0 1 0 5 3.500
1758 MATH 110 Math Literacy ALI, M 37 10 7 2 1 3 3 3 1 0 1 0 5 3.410
1759 MATH 110 Math Literacy LASKER, M 31 3 8 2 3 0 4 0 1 0 0 2 7 3.222
1760 MATH 110 Math Literacy BEGA, J 37 4 0 5 3 3 3 4 2 2 0 1 6 2.893
1761 MATH 110 Math Literacy WOLF-SONKIN, V 30 0 1 1 0 6 1 0 2 2 4 5 7 1.809
1762 MATH 114 Elementary Prob&Stat LEHMAN, S 20 1 1 4 0 5 0 2 0 1 3 0 3 2.771
1763 MATH 115 College Algebra for Precalc ALI, M 29 6 5 1 4 3 2 0 1 2 1 0 3 3.268
1764 MATH 115 College Algebra for Precalc UDDIN, J 30 0 3 1 3 1 2 0 1 3 0 1 14 2.740
1765 MATH 115 College Algebra for Precalc CLARKE, A 22 1 0 1 1 2 1 0 1 0 0 1 11 2.713
1766 MATH 115 College Algebra for Precalc TOBAR, J 30 1 2 3 1 4 0 1 5 2 3 0 2 2.595
1767 MATH 115 College Algebra for Precalc NAKAYAMA, A 38 4 2 0 2 3 3 2 4 1 1 3 8 2.520
1768 MATH 115 College Algebra for Precalc NAKAYAMA, A 39 3 1 3 7 0 2 4 2 1 5 3 6 2.435
1769 MATH 115 College Algebra for Precalc CLARKE, A 21 0 0 1 1 0 5 0 1 1 0 1 6 2.420
1770 MATH 115 College Algebra for Precalc OSTROWSKY, A 37 3 4 1 2 1 0 0 2 2 6 2 12 2.378
1771 MATH 115 College Algebra for Precalc BOTEJU, W 38 0 3 2 0 2 3 2 2 4 2 5 8 2.036
1772 MATH 115 College Algebra for Precalc LEE, D 35 0 3 0 4 2 0 1 0 6 9 1 9 2.027
1773 MATH 115 College Algebra for Precalc GILLMAN, P 30 3 0 0 0 2 0 2 0 1 3 5 9 1.706
1774 MATH 115 College Algebra for Precalc CLARKE, A 22 0 0 0 1 1 0 1 1 2 0 3 7 1.556
1775 MATH 115 College Algebra for Precalc WOLF-SONKIN, V 30 0 0 0 1 0 3 1 1 2 1 4 16 1.546
1776 MATH 115 College Algebra for Precalc LEE, D 35 0 0 0 2 0 2 0 1 8 7 3 9 1.504
1777 MATH 115 College Algebra for Precalc LEHMAN, S 21 1 1 0 0 0 2 0 2 0 1 6 5 1.415
1778 MATH 115 College Algebra for Precalc GILLMAN, P 36 0 2 0 0 1 0 2 1 2 2 8 12 1.278
1779 MATH 115 College Algebra for Precalc NEVAREZ, B 30 0 0 0 2 0 2 2 1 1 3 8 9 1.226
1780 MATH 115 College Algebra for Precalc CHOW, J 29 0 0 0 2 0 0 1 3 0 5 8 4 1.047
1781 MATH 115 College Algebra for Precalc GONZALEZ, R 14 0 0 1 0 0 0 0 2 1 1 7 1 0.867
1782 MATH 119 Math for Elem School Teachers LEE, H 25 4 2 3 3 3 4 2 0 0 1 0 3 3.200
1783 MATH 119 Math for Elem School Teachers GREENMAN, J 30 3 5 2 1 4 0 2 8 1 0 0 4 2.962
1784 MATH 119 Math for Elem School Teachers CHOW, J 29 5 5 1 3 1 2 2 2 2 0 2 1 2.960
1785 MATH 119 Math for Elem School Teachers LIN, Y 30 6 4 1 5 1 2 0 3 1 3 2 2 2.832
1786 MATH 119 Math for Elem School Teachers LEHMAN, S 16 2 1 2 1 1 1 0 1 0 3 1 2 2.569
1787 MATH 119 Math for Elem School Teachers BERGER, K 36 2 4 5 3 1 2 0 1 2 9 1 5 2.507
1788 MATH 119 Math for Elem School Teachers SHEN, T 36 1 2 1 2 2 4 3 2 4 5 2 7 2.207
1789 MATH 120 Discrete Math Comp Sci GOLDMAN, S 35 0 9 6 2 3 2 9 0 1 2 0 1 3.047
1790 MATH 120 Discrete Math Comp Sci WANG, A 35 4 2 1 2 0 3 5 2 3 2 1 10 2.600
1791 MATH 120 Discrete Math Comp Sci JOANIDHI, Z 30 0 8 1 0 1 0 1 5 0 0 6 6 2.318
1792 MATH 120 Discrete Math Comp Sci BERGER, K 35 0 1 0 2 6 3 2 2 2 4 2 11 2.196
1793 MATH 120 Discrete Math Comp Sci BOTEJU, W 36 2 5 1 1 1 1 5 3 4 2 6 5 2.161
1794 MATH 120 Discrete Math Comp Sci HANUSA, C 30 2 2 2 1 1 2 3 0 1 2 6 7 2.077
1795 MATH 120 Discrete Math Comp Sci BOTEJU, W 35 1 1 2 2 4 2 0 2 1 5 6 8 1.927
1796 MATH 120 Discrete Math Comp Sci BERGER, K 36 0 1 0 1 3 2 1 5 2 4 6 10 1.656
1797 MATH 120 Discrete Math Comp Sci ADRIAN, M 37 0 2 0 1 1 3 0 4 3 7 8 8 1.466
1798 MATH 122 Precalculus CAI, A 23 1 1 5 0 0 2 1 1 0 0 0 0 3.291
1799 MATH 122 Precalculus CLEARY, J 38 6 11 3 1 2 0 1 2 1 5 0 4 3.169
1800 MATH 122 Precalculus DHARMA, J 30 1 0 1 0 0 3 0 0 0 0 0 16 3.160
1801 MATH 122 Precalculus LEE, H 35 5 1 2 4 3 4 2 0 3 0 0 11 3.088
1802 MATH 122 Precalculus ARCHETTI, M 37 10 3 1 2 6 0 1 3 2 1 2 5 3.000
1803 MATH 122 Precalculus CLEARY, J 35 3 3 4 2 2 6 2 3 0 4 0 4 2.834
1804 MATH 122 Precalculus KALRA, P 20 3 1 0 0 0 4 3 2 0 0 1 6 2.693
1805 MATH 122 Precalculus ISLAM, M 20 1 0 4 1 2 0 1 2 0 0 2 4 2.646
1806 MATH 122 Precalculus OZKAN, E 10 0 3 0 0 0 0 3 0 0 2 0 2 2.613
1807 MATH 122 Precalculus BROGES, A 21 0 4 1 0 6 1 1 1 0 1 3 1 2.539
1808 MATH 122 Precalculus SPITZ, H 35 1 4 3 2 2 2 0 0 0 5 3 11 2.459
1809 MATH 122 Precalculus LI, H 37 5 2 1 1 1 4 2 0 1 2 5 11 2.379
1810 MATH 122 Precalculus LORD, A 37 0 4 0 4 1 1 2 4 0 4 2 9 2.341
1811 MATH 122 Precalculus MARKOWITZ, E 40 0 3 4 3 4 3 1 3 2 4 4 8 2.339
1812 MATH 122 Precalculus FLYNN, D 35 1 3 3 2 4 2 1 3 5 6 3 2 2.239
1813 MATH 122 Precalculus COLON, C 37 2 1 0 0 1 0 2 1 3 4 0 19 2.193
1814 MATH 122 Precalculus YUABOV, D 37 3 2 2 0 0 3 3 1 3 2 5 12 2.146
1815 MATH 122 Precalculus MARKOWITZ, E 37 1 3 0 4 3 1 0 3 3 7 3 4 2.107
1816 MATH 122 Precalculus JOSEPH, M 35 0 1 0 0 3 3 2 2 5 1 3 12 1.960
1817 MATH 122 Precalculus SHEN, T 30 0 0 0 2 1 2 3 2 2 5 2 7 1.805
1818 MATH 122 Precalculus JOSEPH, M 37 0 1 1 1 3 2 1 2 4 3 5 13 1.804
1819 MATH 122 Precalculus GANT, S 35 0 2 2 0 1 0 0 2 1 4 4 14 1.756
1820 MATH 122 Precalculus SPITZ, H 35 1 2 1 2 5 0 3 1 1 4 10 5 1.730
1821 MATH 122 Precalculus TOLEDO, D 37 0 0 0 0 0 2 2 4 1 0 7 15 1.231
1822 MATH 122 Precalculus TOLEDO, D 37 0 0 0 0 0 1 0 1 2 6 11 10 0.671
1823 MATH 131 Calculus with Applications I GJONLEKAJ, M 16 2 2 2 0 2 0 2 1 0 0 1 4 3.000
1824 MATH 131 Calculus with Applications I GREENMAN, J 29 1 7 0 0 2 1 1 4 1 3 0 9 2.785
1825 MATH 131 Calculus with Applications I SABITOVA, M 20 0 2 0 1 4 0 1 4 2 0 1 5 2.467
1826 MATH 131 Calculus with Applications I GREENMAN, J 24 1 1 0 1 2 2 0 4 2 2 3 5 2.006
1827 MATH 131 Calculus with Applications I GREENMAN, J 31 0 4 0 2 3 1 3 2 0 3 7 6 1.928
1828 MATH 131 Calculus with Applications I JOANIDHI, Z 25 0 2 0 1 3 1 1 4 0 0 6 6 1.850
1829 MATH 132 Calc Appl Soc Sci II GOLDMAN, S 12 1 0 1 2 2 1 1 0 0 1 0 2 2.922
1830 MATH 141 Calculus/Differentiation BROGES, A 19 5 3 1 0 1 1 0 0 0 1 1 3 3.262
1831 MATH 141 Calculus/Differentiation KALRA, P 20 2 3 3 0 0 1 2 2 0 0 1 5 3.029
1832 MATH 141 Calculus/Differentiation FLYNN, D 35 2 6 3 4 2 3 3 2 2 1 1 5 2.955
1833 MATH 141 Calculus/Differentiation GOLDMAN, S 30 1 4 3 4 3 1 2 3 3 2 2 2 2.632
1834 MATH 141 Calculus/Differentiation GONZALEZ, R 35 3 1 2 6 2 1 4 2 2 0 4 6 2.537
1835 MATH 141 Calculus/Differentiation KIMATOV, M 38 7 3 2 0 2 2 2 1 3 4 5 5 2.403
1836 MATH 141 Calculus/Differentiation WANG, A 34 3 1 1 5 2 4 2 2 0 2 5 7 2.356
1837 MATH 141 Calculus/Differentiation NICASTRO, S 38 2 0 3 4 1 4 3 2 3 5 2 9 2.314
1838 MATH 141 Calculus/Differentiation ERLBAUM, S 35 1 5 2 1 0 3 0 1 3 1 6 11 2.213
1839 MATH 141 Calculus/Differentiation ERLBAUM, S 34 0 2 0 1 5 3 3 4 1 5 5 5 1.931
1840 MATH 141 Calculus/Differentiation ADRIAN, M 37 1 2 1 1 4 3 0 2 0 2 8 9 1.879
1841 MATH 141 Calculus/Differentiation BROGES, A 20 0 2 0 1 2 2 1 1 0 1 5 4 1.867
1842 MATH 141 Calculus/Differentiation RALESCU, S 35 2 0 2 0 0 2 0 4 3 0 6 15 1.784
1843 MATH 141 Calculus/Differentiation TOBAR, J 40 1 3 0 1 1 1 2 3 0 3 7 17 1.755
1844 MATH 141 Calculus/Differentiation DON, E 35 0 2 0 2 2 0 0 3 0 4 6 13 1.611
1845 MATH 142 Calculus/Integration MITRA, S 28 1 3 2 5 6 0 1 3 0 0 0 6 3.152
1846 MATH 142 Calculus/Integration WEN, C 29 10 1 2 2 2 0 2 2 0 2 6 0 2.572
1847 MATH 142 Calculus/Integration WEN, C 25 5 1 1 1 1 1 4 1 1 1 4 4 2.410
1848 MATH 142 Calculus/Integration RONG, Y 21 2 1 1 0 0 2 3 4 0 3 1 4 2.294
1849 MATH 142 Calculus/Integration RICCARDO, M 30 2 0 1 1 3 6 1 3 3 3 2 4 2.264
1850 MATH 142 Calculus/Integration ISLAM, M 11 1 0 1 0 1 1 0 0 1 0 3 3 1.888
1851 MATH 142 Calculus/Integration SULTAN, A 28 0 0 1 0 1 0 5 2 1 0 6 12 1.494
1852 MATH 142 Calculus/Integration RONG, Y 22 0 0 0 0 1 1 3 1 1 5 3 7 1.420
1853 MATH 143 Calculus-Infinite Series LIU, Z 22 3 1 2 0 1 3 1 1 2 0 1 7 2.813
1854 MATH 143 Calculus-Infinite Series ERLBAUM, S 30 0 3 1 0 4 3 4 2 3 2 3 4 2.244
1855 MATH 143 Calculus-Infinite Series ERLBAUM, S 30 2 1 1 3 1 4 1 3 3 3 4 4 2.146
1856 MATH 143 Calculus-Infinite Series BRAUN, M 27 1 0 2 1 0 1 1 0 6 2 5 8 1.679
1857 MATH 143 Calculus-Infinite Series BRAUN, M 28 2 1 0 1 0 1 1 0 1 1 9 11 1.353
1858 MATH 151 Calc/Diff & Integtn PANDAZIS, M 25 2 0 0 1 1 0 0 5 0 5 0 9 2.093
1859 MATH 151 Calc/Diff & Integtn DHARMA, J 27 1 1 1 0 0 2 1 3 1 0 3 12 2.085
1860 MATH 151 Calc/Diff & Integtn SPITZ, H 29 3 0 2 3 1 0 1 1 1 4 5 8 2.014
1861 MATH 151 Calc/Diff & Integtn DON, E 31 2 0 1 2 0 1 0 4 0 4 4 10 1.833
1862 MATH 151 Calc/Diff & Integtn KAHAN, S 30 0 0 0 1 1 0 1 1 0 4 3 18 1.327
1863 MATH 152 Calc/Integration & Infinite TERILLA, J 25 4 5 2 3 1 0 0 2 0 1 3 4 2.919
1864 MATH 152 Calc/Integration & Infinite BERMAN, G 30 1 5 1 0 0 0 1 0 1 1 3 16 2.515
1865 MATH 152 Calc/Integration & Infinite KOROVESHI, B 26 0 1 2 0 1 1 3 3 0 0 7 8 1.667
1866 MATH 152 Calc/Integration & Infinite PORCHETTA, E 20 2 0 0 0 0 2 0 2 2 0 5 7 1.600
1867 MATH 152 Calc/Integration & Infinite KAHAN, S 28 0 1 0 1 0 0 1 1 0 1 8 15 0.969
1868 MATH 201 Multivariable Calculus ZAKERI, S 30 3 3 4 3 5 1 1 2 1 0 0 7 3.235
1869 MATH 201 Multivariable Calculus SARIC, D 18 0 4 0 1 0 1 2 0 4 0 0 6 2.783
1870 MATH 202 Advanced Calculus SARIC, D 25 3 7 2 1 0 3 3 1 1 0 0 4 3.305
1871 MATH 202 Advanced Calculus ROTHENBERG, R 13 0 4 3 0 1 0 0 0 0 2 0 3 3.210
1872 MATH 209 Elementary Set Theory KLOSIN, K 14 0 2 1 0 0 1 4 0 0 3 1 2 2.217
1873 MATH 220 Discrete Mathematics GANGARAM, E 21 1 5 0 4 4 1 1 1 0 1 0 3 3.178
1874 MATH 220 Discrete Mathematics MILLER, D 16 2 2 3 1 0 0 0 0 0 1 1 6 3.140
1875 MATH 223 Diff Equa/Num Meth 1 JOSEPH, M 20 0 4 4 0 1 4 0 2 2 1 1 1 2.789
1876 MATH 223 Diff Equa/Num Meth 1 BRAUN, M 28 1 2 3 3 4 4 2 1 3 1 2 2 2.635
1877 MATH 231 Linear Algebra I SABITOVA, M 19 1 3 0 1 0 0 1 1 0 0 0 12 3.371
1878 MATH 231 Linear Algebra I JIANG, Y 30 2 4 4 2 2 0 1 2 0 1 1 11 3.089
1879 MATH 231 Linear Algebra I ZAKERI, S 30 4 5 1 1 4 3 2 4 2 1 1 2 2.861
1880 MATH 231 Linear Algebra I JOSEPH, M 30 1 3 1 2 4 3 1 1 3 0 5 6 2.325
1881 MATH 231 Linear Algebra I PANDAZIS, M 30 1 3 0 1 1 1 1 3 1 3 2 13 2.235
1882 MATH 231 Linear Algebra I KOROVESHI, B 26 1 3 2 1 3 2 0 1 2 0 6 5 2.214
1883 MATH 231 Linear Algebra I DHARMA, J 27 3 1 0 1 1 0 0 1 0 0 4 16 2.209
1884 MATH 231 Linear Algebra I BERMAN, G 21 0 2 0 2 0 2 0 1 0 0 3 11 2.200
1885 MATH 231 Linear Algebra I MILLER, D 24 0 1 2 1 3 1 1 1 2 2 3 7 2.124
1886 MATH 231 Linear Algebra I KOROVESHI, B 24 0 0 1 0 0 1 3 3 5 0 2 9 1.853
1887 MATH 231 Linear Algebra I VLAMIS, N 23 1 0 0 2 0 2 1 3 2 0 6 5 1.629
1888 MATH 241 Intro Prob & Math Stat MITRA, S 25 0 3 2 4 2 4 1 0 0 0 0 8 3.231
1889 MATH 241 Intro Prob & Math Stat MILLER, D 25 0 4 1 2 1 0 1 2 1 1 0 12 2.946
1890 MATH 241 Intro Prob & Math Stat LIU, Z 35 2 3 2 4 2 4 3 1 2 0 1 11 2.904
1891 MATH 241 Intro Prob & Math Stat SISSER, F 36 1 2 1 5 4 6 0 2 2 0 4 9 2.511
1892 MATH 241 Intro Prob & Math Stat SISSER, F 36 3 2 4 2 0 6 0 4 7 0 3 4 2.500
1893 MATH 241 Intro Prob & Math Stat GANGARAM, E 28 3 2 1 2 2 3 0 2 2 2 3 6 2.445
1894 MATH 241 Intro Prob & Math Stat MILLER, D 25 1 2 2 1 0 1 1 1 0 2 3 11 2.264
1895 MATH 241 Intro Prob & Math Stat NEVAREZ, B 36 2 3 3 0 1 1 4 4 4 4 4 6 2.160
1896 MATH 241 Intro Prob & Math Stat GANGARAM, E 36 0 1 0 0 3 1 2 3 2 1 10 13 1.335
1897 MATH 242 Methods Of Math Statistics SISSER, F 36 7 2 1 0 0 4 0 3 4 0 8 7 2.183
1898 MATH 247 Lin Prog & Game Thy KLOSIN, K 36 4 16 0 1 1 4 2 2 0 0 2 4 3.303
1899 MATH 301 Abstract Algebra I MILLER, R 15 0 0 0 0 0 0 0 0 1 0 1 13 0.850
1900 MATH 310 Elementary Real Analysis WILSON, S 24 0 5 3 0 4 2 2 2 1 0 0 5 3.095
1909 MATH 114W Elementary Prob&Stat CAI, A 29 11 6 2 0 7 0 0 0 0 0 0 3 3.708
1910 MATH 114W Elementary Prob&Stat RICCARDO, M 30 8 6 3 1 1 1 2 0 1 3 0 4 3.285

In pandas, both unique and nunique are used to get unique values of a series object, but they serve different purposes and return different types of output:¶

  • unique(): This function returns an array of all unique values in the order that they appear in the original DataFrame or Series. It's useful when you want to see or use the actual unique values (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.unique.html)

  • nunique(): This function returns an integer that represents the number of unique values. It's useful when you just want to know how many unique values exist, rather than what those unique values are (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.nunique.html)

iloc[]:¶

  • Purely integer-location based indexing for selection by position (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html)

sort_values():¶

  • Sort by values along either axis (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html)

extend():¶

  • Adds the specified list elements (or any iterable) to the end of the current list https://www.w3schools.com/python/ref_list_extend.asp

np.std():¶

  • Compute the standard deviation along the specified axis https://numpy.org/doc/stable/reference/generated/numpy.std.html
In [6]:
def calculate_average_gpas(df):
    # Prepare a list to store the results
    results = []

    # GPA equivalents for each letter grade
    letter_grades_to_gpa = {
        "A+": 4.0,
        "A": 4.0,
        "A-": 3.7,
        "B+": 3.3,
        "B": 3.0,
        "B-": 2.7,
        "C+": 2.3,
        "C": 2.0,
        "C-": 1.7,
        "D": 1.0,
        "F": 0.0
    }

    # Loop over all unique course numbers
    for class_nbr in df["NBR"].unique():
        # Filter the DataFrame for the current course number
        df_nbr = df[df["NBR"] == class_nbr]

        # Loop over all unique professors for the current course number
        for prof in df_nbr["PROF"].unique():
            # Filter the DataFrame for the current professor
            df_prof = df_nbr[df_nbr["PROF"] == prof]

            # Calculate the average GPA for the current professor and course number
            avg_gpa_prof = round(df_prof["AVG GPA"].mean(), 1)

            # Convert the individual grade counts to GPA equivalents and calculate the standard deviation
            gpa_distributions = []
            for grade_letter, gpa in letter_grades_to_gpa.items():
                gpa_distributions.extend([gpa] * df_prof[grade_letter].sum())
            std_dev_gpa_prof = round(np.std(gpa_distributions), 2)

            # Append the result to the list
            results.append({
                "CLASS NUMBER": class_nbr,
                "PROF": prof,
                "AVG GPA PROF": avg_gpa_prof,
                "AVG GPA PROF LETTER": gpa_letter_converter(avg_gpa_prof),
                "STD DEV GPA PROF": std_dev_gpa_prof
            })

        # If there is more than one professor for this course, calculate the average GPA for the current course number, regardless of the professor
        if df_nbr["PROF"].nunique() > 1:
            avg_gpa_nbr = round(df_nbr["AVG GPA"].mean(), 1)

            # Convert the individual grade counts to GPA equivalents and calculate the standard deviation
            gpa_distributions = []
            for grade_letter, gpa in letter_grades_to_gpa.items():
                gpa_distributions.extend([gpa] * df_nbr[grade_letter].sum())
            std_dev_gpa_nbr = round(np.std(gpa_distributions), 2)

            # Append the result to the list
            results.append({
                "CLASS NUMBER": class_nbr,
                "PROF": "All Professors",
                "AVG GPA PROF": avg_gpa_nbr,
                "AVG GPA PROF LETTER": gpa_letter_converter(avg_gpa_nbr),
                "STD DEV GPA PROF": std_dev_gpa_nbr
            })

    # Convert the list of results to a DataFrame
    df_results = pd.DataFrame(results)
    
    # Find the hardest class based on average GPA
    hardest_class = df_results[df_results["PROF"] == "All Professors"].sort_values("AVG GPA PROF").iloc[0]

    # Calculate the average GPA for the entire subject
    avg_gpa_subject = round(df["AVG GPA"].mean(), 1)

    print(f"Average GPA for this entire subject in Fall 2022 is: {avg_gpa_subject}, which is a {gpa_letter_converter(avg_gpa_subject)}")
    print(f"The hardest class based on average GPA in Fall 2022 is class number: {hardest_class['CLASS NUMBER']} with an average GPA of {hardest_class['AVG GPA PROF']}, which is a {hardest_class['AVG GPA PROF LETTER']}")
    print("\nStandard deviation tells us about the spread of the grades that students received in each class. A higher standard deviation indicates a wider range of grades, while a lower standard deviation indicates that grades were more closely clustered around the average.")

    return df_results


math_df_results = calculate_average_gpas(math_df)
math_df_results
Average GPA for this entire subject in Fall 2022 is: 2.3, which is a C+
The hardest class based on average GPA in Fall 2022 is class number: 151 with an average GPA of 1.9, which is a C-

Standard deviation tells us about the spread of the grades that students received in each class. A higher standard deviation indicates a wider range of grades, while a lower standard deviation indicates that grades were more closely clustered around the average.
Out[6]:
CLASS NUMBER PROF AVG GPA PROF AVG GPA PROF LETTER STD DEV GPA PROF
0 110 ALI, M 3.5 B+ 0.77
1 110 LASKER, M 3.2 B 1.15
2 110 BEGA, J 2.9 B- 0.92
3 110 WOLF-SONKIN, V 1.8 C- 1.29
4 110 All Professors 3.0 B 1.13
5 114 LEHMAN, S 2.8 B- 1.02
6 115 ALI, M 3.3 B+ 0.86
7 115 UDDIN, J 2.7 B- 1.10
8 115 CLARKE, A 2.2 C 1.22
9 115 TOBAR, J 2.6 C+ 1.00
10 115 NAKAYAMA, A 2.5 C+ 1.25
11 115 OSTROWSKY, A 2.4 C+ 1.42
12 115 BOTEJU, W 2.0 C 1.32
13 115 LEE, D 1.8 C- 1.07
14 115 GILLMAN, P 1.5 D 1.45
15 115 WOLF-SONKIN, V 1.5 D 1.17
16 115 LEHMAN, S 1.4 D 1.51
17 115 NEVAREZ, B 1.2 D 1.22
18 115 CHOW, J 1.0 D 1.11
19 115 GONZALEZ, R 0.9 F 1.17
20 115 All Professors 2.0 C 1.36
21 119 LEE, H 3.2 B 0.74
22 119 GREENMAN, J 3.0 B 0.87
23 119 CHOW, J 3.0 B 1.19
24 119 LIN, Y 2.8 B- 1.27
25 119 LEHMAN, S 2.6 C+ 1.35
26 119 BERGER, K 2.5 C+ 1.30
27 119 SHEN, T 2.2 C 1.11
28 119 All Professors 2.7 B- 1.18
29 120 GOLDMAN, S 3.0 B 0.88
30 120 WANG, A 2.6 C+ 1.09
31 120 JOANIDHI, Z 2.3 C+ 1.62
32 120 BERGER, K 1.9 C- 1.15
33 120 BOTEJU, W 2.0 C 1.40
34 120 HANUSA, C 2.1 C 1.53
35 120 ADRIAN, M 1.5 D 1.22
36 120 All Professors 2.2 C 1.35
37 122 CAI, A 3.3 B+ 0.69
38 122 CLEARY, J 3.0 B 1.08
39 122 DHARMA, J 3.2 B 0.57
40 122 LEE, H 3.1 B 0.75
41 122 ARCHETTI, M 3.0 B 1.17
42 122 KALRA, P 2.7 B- 1.05
43 122 ISLAM, M 2.6 C+ 1.30
44 122 OZKAN, E 2.6 C+ 1.19
45 122 BROGES, A 2.5 C+ 1.36
46 122 SPITZ, H 2.1 C 1.52
47 122 LI, H 2.4 C+ 1.50
48 122 LORD, A 2.3 C+ 1.24
49 122 MARKOWITZ, E 2.2 C 1.28
50 122 FLYNN, D 2.2 C 1.23
51 122 COLON, C 2.2 C 1.10
52 122 YUABOV, D 2.1 C 1.43
53 122 JOSEPH, M 1.9 C- 1.16
54 122 SHEN, T 1.8 C- 0.98
55 122 GANT, S 1.8 C- 1.46
56 122 TOLEDO, D 1.0 D 0.99
57 122 All Professors 2.3 C+ 1.35
58 131 GJONLEKAJ, M 3.0 B 1.15
59 131 GREENMAN, J 2.2 C 1.35
60 131 SABITOVA, M 2.5 C+ 0.99
61 131 JOANIDHI, Z 1.8 C- 1.43
62 131 All Professors 2.3 C+ 1.34
63 132 GOLDMAN, S 2.9 B- 0.83
64 141 BROGES, A 2.6 C+ 1.56
65 141 KALRA, P 3.0 B 1.15
66 141 FLYNN, D 3.0 B 1.02
67 141 GOLDMAN, S 2.6 C+ 1.17
68 141 GONZALEZ, R 2.5 C+ 1.26
69 141 KIMATOV, M 2.4 C+ 1.48
70 141 WANG, A 2.4 C+ 1.36
71 141 NICASTRO, S 2.3 C+ 1.13
72 141 ERLBAUM, S 2.1 C 1.38
73 141 ADRIAN, M 1.9 C- 1.52
74 141 RALESCU, S 1.8 C- 1.42
75 141 TOBAR, J 1.8 C- 1.49
76 141 DON, E 1.6 D 1.42
77 141 All Professors 2.3 C+ 1.40
78 142 MITRA, S 3.2 B 0.63
79 142 WEN, C 2.5 C+ 1.52
80 142 RONG, Y 1.9 C- 1.14
81 142 RICCARDO, M 2.3 C+ 1.06
82 142 ISLAM, M 1.9 C- 1.60
83 142 SULTAN, A 1.5 D 1.23
84 142 All Professors 2.2 C 1.34
85 143 LIU, Z 2.8 B- 1.11
86 143 ERLBAUM, S 2.2 C 1.22
87 143 BRAUN, M 1.5 D 1.47
88 143 All Professors 2.0 C 1.37
89 151 PANDAZIS, M 2.1 C 1.05
90 151 DHARMA, J 2.1 C 1.36
91 151 SPITZ, H 2.0 C 1.51
92 151 DON, E 1.8 C- 1.38
93 151 KAHAN, S 1.3 D 1.12
94 151 All Professors 1.9 C- 1.35
95 152 TERILLA, J 2.9 B- 1.43
96 152 BERMAN, G 2.5 C+ 1.68
97 152 KOROVESHI, B 1.7 C- 1.44
98 152 PORCHETTA, E 1.6 D 1.44
99 152 KAHAN, S 1.0 D 1.39
100 152 All Professors 1.9 C- 1.63
101 201 ZAKERI, S 3.2 B 0.70
102 201 SARIC, D 2.8 B- 0.97
103 201 All Professors 3.0 B 0.83
104 202 SARIC, D 3.3 B+ 0.80
105 202 ROTHENBERG, R 3.2 B 1.14
106 202 All Professors 3.3 B+ 0.93
107 209 KLOSIN, K 2.2 C 1.23
108 220 GANGARAM, E 3.2 B 0.79
109 220 MILLER, D 3.1 B 1.36
110 220 All Professors 3.2 B 1.03
111 223 JOSEPH, M 2.8 B- 1.12
112 223 BRAUN, M 2.6 C+ 1.09
113 223 All Professors 2.7 B- 1.10
114 231 SABITOVA, M 3.4 B+ 0.81
115 231 JIANG, Y 3.1 B 1.11
116 231 ZAKERI, S 2.9 B- 1.05
117 231 JOSEPH, M 2.3 C+ 1.38
118 231 PANDAZIS, M 2.2 C 1.32
119 231 KOROVESHI, B 2.0 C 1.33
120 231 DHARMA, J 2.2 C 1.76
121 231 BERMAN, G 2.2 C 1.55
122 231 MILLER, D 2.1 C 1.31
123 231 VLAMIS, N 1.6 D 1.33
124 231 All Professors 2.4 C+ 1.38
125 241 MITRA, S 3.2 B 0.52
126 241 MILLER, D 2.6 C+ 1.35
127 241 LIU, Z 2.9 B- 0.94
128 241 SISSER, F 2.5 C+ 1.19
129 241 GANGARAM, E 1.9 C- 1.43
130 241 NEVAREZ, B 2.2 C 1.29
131 241 All Professors 2.5 C+ 1.29
132 242 SISSER, F 2.2 C 1.58
133 247 KLOSIN, K 3.3 B+ 1.10
134 301 MILLER, R 0.8 F 0.85
135 310 WILSON, S 3.1 B 0.77
136 114W CAI, A 3.7 A- 0.44
137 114W RICCARDO, M 3.3 B+ 1.04
138 114W All Professors 3.5 B+ 0.83
In [7]:
import matplotlib.pyplot as plt
import seaborn as sns
In [8]:
plt.figure()
all_prof_df_results = math_df_results[math_df_results["PROF"] == 'All Professors']
sns.histplot(all_prof_df_results["STD DEV GPA PROF"], kde=True, color='skyblue')
plt.axvline(all_prof_df_results["STD DEV GPA PROF"].mean(), color='red', linestyle='dashed', linewidth=1, label='Mean')
min_ylim, max_ylim = plt.ylim()
plt.text(all_prof_df_results["STD DEV GPA PROF"].mean()*1.2, max_ylim*0.9, 'Mean: {:.2f}'.format(all_prof_df_results["STD DEV GPA PROF"].mean()))

# Generate a color palette with as many colors as classes
colors = sns.color_palette("husl", len(all_prof_df_results))

for idx, (_, row) in enumerate(all_prof_df_results.iterrows()):
    plt.axvline(row["STD DEV GPA PROF"], color=colors[idx], linestyle='dotted', linewidth=0.5, label=row["CLASS NUMBER"])

plt.title("Distribution of Standard Deviations of GPAs")
plt.xlabel("Standard Deviation")
plt.ylabel("Frequency")
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1))  # Adjusted the location to ensure it doesn't overlap with the plot
plt.show()
In [9]:
def calculate_teacher_gpas(df):
    # Prepare a list to store the results
    results = []

    # GPA equivalents for each letter grade
    letter_grades_to_gpa = {
        "A+": 4.0,
        "A": 4.0,
        "A-": 3.7,
        "B+": 3.3,
        "B": 3.0,
        "B-": 2.7,
        "C+": 2.3,
        "C": 2.0,
        "C-": 1.7,
        "D": 1.0,
        "F": 0.0
    }

    # Loop over all unique professors
    for prof in sorted(df["PROF"].unique()):
        # Filter the DataFrame for the current professor
        df_prof = df[df["PROF"] == prof]

        # Calculate the average GPA for the current professor
        avg_gpa_prof = round(df_prof["AVG GPA"].mean(), 1)

        # Convert the individual grade counts to GPA equivalents and calculate the standard deviation
        gpa_distributions = []
        for grade_letter, gpa in letter_grades_to_gpa.items():
            gpa_distributions.extend([gpa] * df_prof[grade_letter].sum())
        std_dev_gpa_prof = round(np.std(gpa_distributions), 1)

        # Calculate the percentage of students who withdrew for the current professor
        withdraw_percentage = df_prof["W"].sum() / df_prof["TOTAL"].sum()

        # Append the result to the list
        results.append({
            "PROF": prof,
            "AVG GPA PROF": avg_gpa_prof,
            "AVG GPA PROF LETTER": gpa_letter_converter(avg_gpa_prof),
            "STD DEV GPA PROF": std_dev_gpa_prof,
            "NUM OF CLASSES": len(df_prof),
            "WITHDRAW PERCENTAGE": round(withdraw_percentage * 100, 1)
        })

    # Convert the list of results to a DataFrame
    df_results = pd.DataFrame(results)

    # Calculate the average GPA for the entire subject
    avg_gpa_subject = round(df["AVG GPA"].mean(), 1)

    # Calculate the average standard deviation for the entire subject
    gpa_distributions = []
    for grade_letter, gpa in letter_grades_to_gpa.items():
        gpa_distributions.extend([gpa] * df[grade_letter].sum())
    avg_std_dev_subject = round(np.std(gpa_distributions), 1)
    
    # Calculate the average withdrawal percentage for the entire subject
    withdraw_percentage_subject = round((df["W"].sum() / df["TOTAL"].sum()) * 100, 2)
    
    # Find the professors who teach more than one class, have a GPA that is the same or higher than the subject average GPA,
    # and for whom less than 40% of students withdrew
    best_profs = df_results[(df_results["NUM OF CLASSES"] > 1) & (df_results["AVG GPA PROF"] >= avg_gpa_subject) & (df_results["WITHDRAW PERCENTAGE"] <= withdraw_percentage_subject)]

    print(f"Professors who teach more than one class, have a GPA that is the same or higher than the subject average GPA ({avg_gpa_subject}), and have a withdrawal percentage that is less or equal than the subject average withdrawal percentage ({withdraw_percentage_subject}%):\n")
    print(best_profs, "\n")
    print("Note: This ignores rate my professor ratings. This is soley based on GPA and it doesn't consider how much students actually learn from these teachers!")
    print(f"Average standard deviation of GPA for all teachers in this subject in Fall 2022 is: {avg_std_dev_subject}")

    return df_results


teacher_math_df_results = calculate_teacher_gpas(math_df)
teacher_math_df_results
Professors who teach more than one class, have a GPA that is the same or higher than the subject average GPA (2.3), and have a withdrawal percentage that is less or equal than the subject average withdrawal percentage (24.98%):

           PROF  AVG GPA PROF AVG GPA PROF LETTER  STD DEV GPA PROF  \
1        ALI, M           3.4                  B+               0.8   
8     BROGES, A           2.6                  C+               1.5   
9        CAI, A           3.5                  B+               0.6   
12    CLEARY, J           3.0                   B               1.1   
17     FLYNN, D           2.6                  C+               1.2   
22   GOLDMAN, S           2.9                  B-               1.0   
24  GREENMAN, J           2.4                  C+               1.3   
26     ISLAM, M           2.3                  C+               1.5   
33    KLOSIN, K           2.8                  B-               1.2   
37       LEE, H           3.1                   B               0.8   
38    LEHMAN, S           2.3                  C+               1.4   
47  NAKAYAMA, A           2.5                  C+               1.3   
55  RICCARDO, M           2.8                  B-               1.2   
59     SARIC, D           3.0                   B               0.9   
61    SISSER, F           2.4                  C+               1.3   
69      WANG, A           2.5                  C+               1.2   
70       WEN, C           2.5                  C+               1.5   
74    ZAKERI, S           3.0                   B               0.9   

    NUM OF CLASSES  WITHDRAW PERCENTAGE  
1                3                 12.6  
8                3                 13.3  
9                2                  5.8  
12               2                 11.0  
17               2                 10.0  
22               3                  6.5  
24               4                 21.1  
26               2                 22.6  
33               2                 12.0  
37               2                 23.3  
38               3                 17.5  
47               2                 18.2  
55               2                 13.3  
59               2                 23.3  
61               3                 18.5  
69               2                 24.6  
70               2                  7.4  
74               2                 15.0   

Note: This ignores rate my professor ratings. This is soley based on GPA and it doesn't consider how much students actually learn from these teachers!
Average standard deviation of GPA for all teachers in this subject in Fall 2022 is: 1.4
Out[9]:
PROF AVG GPA PROF AVG GPA PROF LETTER STD DEV GPA PROF NUM OF CLASSES WITHDRAW PERCENTAGE
0 ADRIAN, M 1.7 C- 1.4 2 23.0
1 ALI, M 3.4 B+ 0.8 3 12.6
2 ARCHETTI, M 3.0 B 1.2 1 13.5
3 BEGA, J 2.9 B- 0.9 1 16.2
4 BERGER, K 2.1 C 1.2 3 24.3
5 BERMAN, G 2.4 C+ 1.6 2 52.9
6 BOTEJU, W 2.0 C 1.4 3 19.3
7 BRAUN, M 1.9 C- 1.4 3 25.3
8 BROGES, A 2.6 C+ 1.5 3 13.3
9 CAI, A 3.5 B+ 0.6 2 5.8
10 CHOW, J 2.0 C 1.5 2 8.6
11 CLARKE, A 2.2 C 1.2 3 36.9
12 CLEARY, J 3.0 B 1.1 2 11.0
13 COLON, C 2.2 C 1.1 1 51.4
14 DHARMA, J 2.5 C+ 1.5 3 52.4
15 DON, E 1.7 C- 1.4 2 34.8
16 ERLBAUM, S 2.1 C 1.3 4 18.6
17 FLYNN, D 2.6 C+ 1.2 2 10.0
18 GANGARAM, E 2.3 C+ 1.4 3 25.9
19 GANT, S 1.8 C- 1.5 1 40.0
20 GILLMAN, P 1.5 D 1.4 2 31.8
21 GJONLEKAJ, M 3.0 B 1.2 1 25.0
22 GOLDMAN, S 2.9 B- 1.0 3 6.5
23 GONZALEZ, R 1.7 C- 1.5 2 14.3
24 GREENMAN, J 2.4 C+ 1.3 4 21.1
25 HANUSA, C 2.1 C 1.5 1 23.3
26 ISLAM, M 2.3 C+ 1.5 2 22.6
27 JIANG, Y 3.1 B 1.1 1 36.7
28 JOANIDHI, Z 2.1 C 1.6 2 21.8
29 JOSEPH, M 2.2 C 1.3 4 26.2
30 KAHAN, S 1.1 D 1.3 2 56.9
31 KALRA, P 2.9 B- 1.1 2 27.5
32 KIMATOV, M 2.4 C+ 1.5 1 13.2
33 KLOSIN, K 2.8 B- 1.2 2 12.0
34 KOROVESHI, B 1.9 C- 1.4 3 28.9
35 LASKER, M 3.2 B 1.2 1 22.6
36 LEE, D 1.8 C- 1.1 2 25.7
37 LEE, H 3.1 B 0.8 2 23.3
38 LEHMAN, S 2.3 C+ 1.4 3 17.5
39 LI, H 2.4 C+ 1.5 1 29.7
40 LIN, Y 2.8 B- 1.3 1 6.7
41 LIU, Z 2.9 B- 1.0 2 31.6
42 LORD, A 2.3 C+ 1.2 1 24.3
43 MARKOWITZ, E 2.2 C 1.3 2 15.6
44 MILLER, D 2.6 C+ 1.4 4 40.0
45 MILLER, R 0.8 F 0.8 1 86.7
46 MITRA, S 3.2 B 0.6 2 26.4
47 NAKAYAMA, A 2.5 C+ 1.3 2 18.2
48 NEVAREZ, B 1.7 C- 1.3 2 22.7
49 NICASTRO, S 2.3 C+ 1.1 1 23.7
50 OSTROWSKY, A 2.4 C+ 1.4 1 32.4
51 OZKAN, E 2.6 C+ 1.2 1 20.0
52 PANDAZIS, M 2.2 C 1.2 2 40.0
53 PORCHETTA, E 1.6 D 1.4 1 35.0
54 RALESCU, S 1.8 C- 1.4 1 42.9
55 RICCARDO, M 2.8 B- 1.2 2 13.3
56 RONG, Y 1.9 C- 1.1 2 25.6
57 ROTHENBERG, R 3.2 B 1.1 1 23.1
58 SABITOVA, M 2.9 B- 1.0 2 43.6
59 SARIC, D 3.0 B 0.9 2 23.3
60 SHEN, T 2.0 C 1.1 2 21.2
61 SISSER, F 2.4 C+ 1.3 3 18.5
62 SPITZ, H 2.1 C 1.5 3 24.2
63 SULTAN, A 1.5 D 1.2 1 42.9
64 TERILLA, J 2.9 B- 1.4 1 16.0
65 TOBAR, J 2.2 C 1.3 2 27.1
66 TOLEDO, D 1.0 D 1.0 2 33.8
67 UDDIN, J 2.7 B- 1.1 1 46.7
68 VLAMIS, N 1.6 D 1.3 1 21.7
69 WANG, A 2.5 C+ 1.2 2 24.6
70 WEN, C 2.5 C+ 1.5 2 7.4
71 WILSON, S 3.1 B 0.8 1 20.8
72 WOLF-SONKIN, V 1.7 C- 1.3 2 38.3
73 YUABOV, D 2.1 C 1.4 1 32.4
74 ZAKERI, S 3.0 B 0.9 2 15.0

Note¶

To actually interact with plot below and be able to hover over plots and see which teacher its referring to, download the html version of this file instead¶

In [10]:
import plotly.express as px

# Set the overall average GPA
mean_gpa = 2.3

# Create the scatter plot using Plotly Express
fig = px.scatter(teacher_math_df_results, 
                 x=list(range(len(teacher_math_df_results))),
                 y='AVG GPA PROF',
                 hover_name='PROF', # This will show the professor's name when hovering over a point
                 title="MATH Professor GPA Averages vs MATH Subject Average GPA",
                 labels={'x': 'Professor (By Index Above)', 'y': 'Average GPA'},
                 size_max=100)

# Add a line for the average GPA
fig.add_shape(
    type='line',
    line=dict(dash='dash', color='red'),
    x0=0,
    x1=len(teacher_math_df_results),
    y0=mean_gpa,
    y1=mean_gpa,
)

# Show the plot
fig.show()

Teacher Analysis¶

Most of the teachers above make sense based off their Rate My Professor:¶

  • Meimona Ali (https://www.ratemyprofessors.com/professor/2107629)
  • Adele M. Broges (https://www.ratemyprofessors.com/professor/487526)
  • Anhong Cai (https://www.ratemyprofessors.com/professor/835045)
  • Desmond Flynn (https://www.ratemyprofessors.com/professor/2838676)
  • Steven Goldman (https://www.ratemyprofessors.com/professor/1786967)
  • Jennifer Greenman (https://www.ratemyprofessors.com/professor/1840079)
  • Krzysztof Klosin (https://www.ratemyprofessors.com/professor/1650543)
  • Seth Lehman (https://www.ratemyprofessors.com/professor/2447352)
  • Akina Nakayama (https://www.ratemyprofessors.com/professor/1868969)
  • Michael Riccardo (https://www.ratemyprofessors.com/professor/2683506)
  • Fern Sisser (https://www.ratemyprofessors.com/professor/22553)
  • Adam Wang (https://www.ratemyprofessors.com/professor/2148901) - hesistant to put this teacher here, as he just barely got the withdrawal rate and has a rmp of 3.9
  • Chengcheng Wen (https://www.ratemyprofessors.com/professor/1849928)
  • Saeed Zakeri (https://www.ratemyprofessors.com/professor/437173) - many students would consider him the best and most sought out math professor in the department

Other's don't:¶

  • Marjana Islam (https://www.ratemyprofessors.com/professor/2410158) - putting her on this one here, as at the current moment only a 3.6 on rmp, and just barely got the gpa and withdrawal conditions
  • Hye Lee (https://www.ratemyprofessors.com/professor/2512450)
  • Dragomir Saric (https://www.ratemyprofessors.com/professor/1989226)

Couldn't find any info on this professor:¶

  • Cleary, J (no rmp or sight of them on department website)

Teachers that missed the mark because of gpa, withdrawal rate, and/or only teaching one class, but they have a rate my professor of 4 and above:¶

  • Clarke Anisha (https://www.ratemyprofessors.com/professor/1327948)
  • Michael Archetti (https://www.ratemyprofessors.com/professor/2576269)
  • Anisha Clarke (https://www.ratemyprofessors.com/professor/1327948)
  • Sharon Erlbaum (https://www.ratemyprofessors.com/professor/277455)
  • Elliot Gangaram (https://www.ratemyprofessors.com/professor/2187985)
  • Sara Gant (https://www.ratemyprofessors.com/professor/2601844)
  • Maria Duravcevic Gjonlekaj (https://www.ratemyprofessors.com/professor/1396526)
  • Michael Joseph (https://www.ratemyprofessors.com/professor/1953691)
  • Priya Kalra (https://www.ratemyprofessors.com/professor/399770)
  • Mikhail Kimatov (https://www.ratemyprofessors.com/professor/2243897)
  • Maksud Lasker (https://www.ratemyprofessors.com/professor/1401777)
  • David Lee (https://www.ratemyprofessors.com/professor/506662)
  • Yunyun Lin (https://www.ratemyprofessors.com/professor/2605426)
  • Zong Wang Liu (https://www.ratemyprofessors.com/professor/1780502)
  • Elena Markowitz (https://www.ratemyprofessors.com/professor/1957987)
  • Bryan Nevarez (https://www.ratemyprofessors.com/professor/2358922)
  • Stephen Nicastro (https://www.ratemyprofessors.com/professor/2383738)
  • Ernest Prochetta (https://www.ratemyprofessors.com/professor/2044631)
  • Tracy Shen (https://www.ratemyprofessors.com/professor/2753724)
  • Henya Spitz (https://www.ratemyprofessors.com/professor/405353) - Giving it to her because she sits currently at 3.9 and has almost 200 rmp ratings
  • Alan Sultan (https://www.ratemyprofessors.com/professor/98650)
  • John Terilla (https://www.ratemyprofessors.com/professor/498381)
  • Jessica Tobar (https://www.ratemyprofessors.com/professor/2840976)
  • Scott Wilson (https://www.ratemyprofessors.com/professor/1157817)
  • Daniel Yuabov (https://www.ratemyprofessors.com/professor/1405223)
In [11]:
# Count the number of classes with an average GPA at or greater than 3.0 and those less than 3.0
green_percentage = teacher_math_df_results[teacher_math_df_results['AVG GPA PROF'] >= 3.0].shape[0]
red_percentage = teacher_math_df_results[teacher_math_df_results['AVG GPA PROF'] < 3.0].shape[0]

# Create the values and labels for the pie chart
values = [green_percentage, red_percentage]
labels = ['At or above 3.0 (B or above)', 'At or below 2.7 (B- or below)']

# Define the colors for each section (green and red)
colors = ['#77dd77', '#ff6961']

# Plot the pie chart
plt.figure(figsize = (6, 6))
plt.pie(values, labels = labels, colors = colors, autopct = '%1.1f%%')

# Set the title
plt.title("Average GPA of all MATH Teachers")

# Show the plot
plt.show()

Class Description/Analysis¶

The hardest class based on average GPA in Fall 2022 is class number: 151 with an average GPA of 1.9, which is a C- (tied with 152 after further analysis) ¶

MATH 110 (Mathematical Literacy: An Introduction to College Mathematics) - Mathematical literacy is necessary for success in today’s highly technological society. Students will gain hands-on experience in solving real world problems in such diverse areas as law, medicine, and politics. Applications include analysis of election results and voting schemes, interpretation of medical data, and study of the nature of fair political representation. Mathematical topics covered will include an introduction to probability and statistics through normal curves and confidence intervals; exponential and logistic growth models; and the algebraic skills necessary for all the applications covered. Extensive use will also be made of today’s sophisticated graphing calculators. Successful completion of the course satisfies the Basic Skills Requirement in Mathematics and prepares students for MATH 113, 114, 116, and 119. Not open to students who are taking or have received credit, including transfer credit or advanced placement credit, for any precalculus or calculus course

Professors:

  • Meimona Ali, AVG GPA: 3.5 (https://www.ratemyprofessors.com/professor/2107629)
  • Maksud Lasker, AVG GPA: 3.2 (https://www.ratemyprofessors.com/professor/1401777)
  • Julian Bega, AVG GPA: 2.9 (https://www.ratemyprofessors.com/professor/2819605)
  • Valerie Wolf-Sonkin, AVG GPA: 1.8 (https://www.ratemyprofessors.com/professor/643077)

General Average GPA for Math 110:

  • 3.0 which is a B

MATH 114 (Elementary Prob and Stats) - An introduction to mathematical probability and statistics for the general student. Not open to mathematics, physics, or chemistry majors, or to students receiving credit for MATH 114W, 241, 611, 621, or 633

Professor:

  • Seth Lehman, AVG GPA: 2.8 (https://www.ratemyprofessors.com/professor/2447352) which is a B-

MATH 114W (Elementary Probability and Statistics) - An introduction to mathematical probability and statistics for the general student with a writing-intensive component. Includes the material in MATH 114, as well as additional topics such as sampling methods, research design, and composing and conducting surveys, explored through student research and writing assignments. Not open to mathematics, physics, or chemistry majors, or to students who are taking or have passed MATH 114, 241, 611, 621, 633, BIOL 230, ECON 249, PSYCH 107, SOC 205, 206, 207. Not open to students who will be receiving transfer credit or advanced placement credit for MATH 114

Professors:

  • Anhong Cai, AVG GPA: 3.7 (https://www.ratemyprofessors.com/professor/835045)
  • Michael Riccardo, AVG GPA: 3.3 (https://www.ratemyprofessors.com/professor/2683506)

General Average GPA for MATH 114W:

  • 3.5 which is a B+

MATH 115 (College Algebra for Precalculus) - Topics include linear, polynomial, rational, and radical expressions as mathematical models; solving equations and systems of equations that arise through the application of these models. Not open to students who are taking or have received credit, including transfer credit or advanced placement credit, for any precalculus or calculus course. Students who fail or withdraw from this course multiple times may be prohibited from majoring in the sciences or mathematics; see the bulletin language for your major

Professors:

  • Meimona Ali, AVG GPA: 3.3 (https://www.ratemyprofessors.com/professor/2107629)
  • Jasim Uddin, AVG GPA: 2.7 (https://www.ratemyprofessors.com/professor/1149432)
  • Jessica Tobar, AVG GPA: 2.6 (https://www.ratemyprofessors.com/professor/2840976)
  • Akina Nakayama, AVG GPA: 2.5 (https://www.ratemyprofessors.com/professor/1868969)
  • Andrew Ostowsky, AVG GPA: 2.4 (https://www.ratemyprofessors.com/professor/1309716)
  • Anisha Clarke, AVG GPA: 2.2 (https://www.ratemyprofessors.com/professor/1327948)
  • Wjeewani Boteju, AVG GPA: 2.0 (https://www.ratemyprofessors.com/professor/2634956)
  • David Lee, AVG GPA: 1.8 (https://www.ratemyprofessors.com/professor/506662)
  • Paula Gillman, AVG GPA: 1.5 (https://www.ratemyprofessors.com/professor/1692881)
  • Valerie Wolf Sonkin, AVG GPA: 1.5 (https://www.ratemyprofessors.com/professor/643077)
  • Seth Lehman, AVG GPA: 1.4 (https://www.ratemyprofessors.com/professor/2447352)
  • Bryan Nevarez, AVG GPA: 1.2 (https://www.ratemyprofessors.com/professor/2358922)
  • James Chow, AVG GPA: 1.0 (https://www.ratemyprofessors.com/professor/2535536)
  • Ricardo Gonzalez, AVG GPA: 0.9(https://www.ratemyprofessors.com/professor/2350533)

General Average GPA for MATH 115:

  • 2.0 which is a C

MATH 119 (Math for Elementary School Teachers) - This course is designed to make prospective elementary schoolteachers aware of the beauty, meaning, and relevance of mathematics. Topics are taken from those areas of mathematics that are related to the elementary school curriculum, and emphasis is placed on clearing up common misunderstandings of mathematical concepts and results

Professors:

  • Hye Lee, AVG GPA: 3.2 (https://www.ratemyprofessors.com/professor/2512450)
  • Jennifer Greenman, AVG GPA: 3.0 (https://www.ratemyprofessors.com/professor/1840079)
  • James Chow, AVG GPA: 3.0 (https://www.ratemyprofessors.com/professor/2535536)
  • Yunyun Lin, AVG GPA: 2.8 (https://www.ratemyprofessors.com/professor/2605426)
  • Seth Lehman, AVG GPA: 2.6 (https://www.ratemyprofessors.com/professor/2447352)
  • Kirsten Berger, AVG GPA: 2.5 (https://www.ratemyprofessors.com/professor/1820251)
  • Tracy Shen, AVG GPA: 2.2 (https://www.ratemyprofessors.com/professor/2753724)

General Average GPA for MATH 119:

  • 2.7 which is a B-

MATH 120 (Discrete Math for Computer Science) - This course provides fluency in foundational mathematical concepts that appear in future courses in computer science. This course is intended for computer science majors; it does not count toward a major or minor in mathematics. Topics include sets, basic combinatorics, functions, sequences, series, products, logarithms, divisibility, and modular arithmetic. Not open to students who are taking or who have received credit for CSCI 120 or MATH 220

Professors:

  • Steven Goldman, AVG GPA: 3.0 (https://www.ratemyprofessors.com/professor/1786967)
  • Adam Wang, AVG GPA: 2.6 (https://www.ratemyprofessors.com/professor/2148901)
  • Zhani Joanidhi, AVG GPA: 2.3 (https://www.ratemyprofessors.com/professor/2365144)
  • Christopher Hanusa, AVG GPA: 2.1 (https://www.ratemyprofessors.com/professor/1157814)
  • Wjeewani Boteju, AVG GPA: 2.0 (https://www.ratemyprofessors.com/professor/2634956)
  • Kirsten Berger, AVG GPA: 1.9 (https://www.ratemyprofessors.com/professor/1820251)
  • Moshe Adrian, AVG GPA: 1.5 (https://www.ratemyprofessors.com/professor/2053981)

General Average GPA for MATH 120:

  • 2.2 which is a C

MATH 122 (Precalculus) - This course offers a thorough introduction to the topics required for calculus. Topics include real and complex numbers, algebra of functions, the fundamental theorem of algebra, trigonometry, logarithms and exponential functions, conic sections, and the use of graphic calculators. Students unsure of their preparation for calculus are advised to take the Queens College mathematics placement test

Professors: *

Math 132 (Calculus Applied Social Science II) - A continuation of MATH 131. Topics include limits and continuity; mean value theorem; antiderivatives; integrals and integration techniques; applications of the definite integral; the calculus of logarithmic, exponential, and trigonometric functions. This course prepares students who have taken MATH 131 to continue into MATH 143. Students who fail or withdraw from this course multiple times may be prohibited from majoring in the sciences or mathematics; seethe bulletin language for your major

Professor: Steven Goldman, AVG GPA: 2.9 (https://www.ratemyprofessors.com/professor/1786967) which is a B-

Math 209 (Elementary Set Theory) - Basic axioms of set theory, algebra of sets, relations and functions, orders, countable and uncountable sets, and additional topics at the discretion of the instructor. The course will introduce some basic proof techniques, with no background in proof-writing assumed. Not open to students who are taking or have received credit for MATH 509 or 609

Professor: Krzysztof Klosin, AVG GPA: 2.2 (https://www.ratemyprofessors.com/professor/1650543) which is a C

Math 242 (Methods of Math Statistics) - A study of those methods of mathematical statistics that are most frequently used in the natural and social sciences, as well as actuarial science. Topics include estimation testing of statistical hypotheses, nonparametric tests, analysis of variance, correlation and regression analysis, and other methods of statistical analysis

Professor: Fern Sisser, AVG GPA: 2.2 (https://www.ratemyprofessors.com/professor/22553) which is a C

Math 247 (Lin Prog and Game Theory) - Methods for handling optimization problems that arise in management, engineering, physical sciences, and social sciences. Topics include convex geometry, the simplex algorithm, duality theory, and the Von Neumann minimax theorem of game theory

Professor: Krzysztof Klosin, AVG GPA: 3.3 (https://www.ratemyprofessors.com/professor/1650543) which is a B+

Math 301 (Abstract Algebra I) - Theory of groups, including cyclic and permutation groups, homomorphisms, normal subgroups and quotient groups. Theory of rings, including integral domains and polynomial rings. Additional topics may be discussed. Not open to students who are taking or who have received credit for MATH 601 or 702

Professor: Russel Miller, AVG GPA: 0.8, everyone dropped or failed (https://www.ratemyprofessors.com/professor/311326) which is an F

Math 310 (Elementary Real Analysis) - Rigorous introduction to functions of a real variable. Topics include real numbers and the completeness property; limits of sequences; elementary topological concepts; continuity and uniform continuity; sequences and series of functions, derivatives; Taylor’s theorem; the Riemann integral

Professor: Scott Wilson, AVG GPA: 3.1 (https://www.ratemyprofessors.com/professor/1157817) which is a B+